﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Hydra.Shell.Attributes;
using Hydra.Shell.Enumerations;

namespace Hydra.Shell.Interfaces
{
    [Guid("A2DD88C9-D878-4323-95A3-77DAF258E5D0")]
    public interface IHydraUIHierarchyWindow
    {
        int Init(IHydraUIHierarchy pUIH, UIHiearchyWindowFlags grfUIHWF, out IUnknown ppunkOutWindowFrame);
        int ExpandItem(IHydraUIHierarchy pUIH, uint itemid, ExpandFlags expf);
        int AddUIHierarchy(IHydraUIHierarchy pUIH, HydraAddHierarchyOptions grfAddOptions);
        int RemoveUIHierarchy(IHydraUIHierarchy pUIH);
        int SetWindowHelpTopic(string lpszHelpFile, uint dwContext);
        int GetItemState(IHydraUIHierarchy pHier, uint itemid, HydraHierarchyItemState dwStateMask, out HydraHierarchyItemState pdwState);
        int FindCommonSelectedHierarchy(uint grfOpt, out IHydraUIHierarchy lppCommonUIH);
        int SetCursor(IntPtr hNewCursor, out IntPtr phOldCursor);
        int GetCurrentSelection(out IntPtr ppHier, out uint pitemid, out IHydraMultiItemSelect ppMIS);
    }
}
